package com.lebang.mapper;

import com.lebang.entity.task.LbbSoso;
import com.lebang.entity.task.LbbSosoWithBLOBs;
import com.lebang.example.LbbSosoExample;
import com.lebang.model.vo.buss.TaskSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface LbbSosoMapper {
    long countByExample(LbbSosoExample example);

    int deleteByExample(LbbSosoExample example);

    int deleteByPrimaryKey(Long id);

    int insert(LbbSosoWithBLOBs record);

    int insertSelective(LbbSosoWithBLOBs record);

    List<LbbSosoWithBLOBs> selectByExampleWithBLOBs(LbbSosoExample example);

    List<LbbSoso> selectByExample(LbbSosoExample example);

    LbbSosoWithBLOBs selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") LbbSosoWithBLOBs record, @Param("example") LbbSosoExample example);

    int updateByExampleWithBLOBs(@Param("record") LbbSosoWithBLOBs record, @Param("example") LbbSosoExample example);

    int updateByExample(@Param("record") LbbSoso record, @Param("example") LbbSosoExample example);

    int updateByPrimaryKeySelective(LbbSosoWithBLOBs record);

    int updateByPrimaryKeyWithBLOBs(LbbSosoWithBLOBs record);

    int updateByPrimaryKey(LbbSoso record);

    LbbSosoWithBLOBs selectByTaskId(String taskId);

    /**
 * 后台分页
 *
 * @param vo
 * @return
 * @author weizx
 * @date 2018年7月20日 下午8:45:18
 */
List<Map<String, Object>> pagging(@Param("vo") TaskSearchVo vo);

    /**
 * 获取任务列表
 *
 * @param userid
 * @param page
 * @param size
 * @param brand
 * @param stime
 * @param etime
 * @return
 * @author weizx
 * @date 2018年7月20日 下午8:45:35
 */
List<Map<String, Object>> search(@Param("userid") String userid, @Param("page") int page, @Param("size") int size, @Param("brand") String brand, @Param("stime") String stime, @Param("etime") String etime, @Param("needCheck") String needCheck);

    List<Map<String, Object>> searchHomePage(@Param("userid") String userid, @Param("page") int page, @Param("size") int size, @Param("brand") String brand, @Param("stime") String stime, @Param("etime") String etime, @Param("needCheck") String needCheck);

    /**
 * 近期是否完成过相同市场相同应用的任务
 *
 * @param userid
 * @param packagename
 * @return
 * @author weizx
 * @date 2018年7月20日 下午8:46:39
 */
int hasCompletedSameStoreApp(@Param("userid") String userid, @Param("imei") String imei, @Param("appStore") String appStore, @Param("packagename") String packagename, @Param("stime") String stime, @Param("etime") String etime);

    void updatetodaytotal();

    int updatebyprimarykeywithblobs(LbbSosoWithBLOBs record);

    /**
 * 同一天是否完成过相同应用的任务
 *
 * @param userid
 * @param packagename
 * @param stime
 * @param etime
 * @return
 * @author weizx
 * @date 2018年7月20日 下午8:45:50
 */
int hasCompletedSameAppToday(@Param("userid") String userid, @Param("imei") String imei, @Param("packagename") String packagename, @Param("stime") String stime, @Param("etime") String etime);

    int updatebyexamplewithblobs(@Param("record") LbbSosoWithBLOBs record, @Param("example") LbbSosoExample example);

    /**
 * 用户做过的搜搜任务
 *
 * @param userid
 * @param page
 * @param size
 * @return
 * @author weizx
 * @date 2018年7月20日 下午9:08:31
 */
List<Map<String, Object>> hasCompleted(@Param("userid") String userid, @Param("page") int page, @Param("size") int size);

    List<LbbSosoWithBLOBs> selectbyexamplewithblobs(LbbSosoExample example);

    /**
 * 后台获取任务量
 *
 * @param vo
 * @return
 * @author weizx
 * @date 2018年7月20日 下午8:45:04
 */
int total(@Param("vo") TaskSearchVo vo);

    List<LbbSosoWithBLOBs> selectListWithBLOBs(@Param("row") Long row,@Param("limit") Integer limit);
}